home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / system / ipca12a.zip / IPCA12A.DOC < prev    next >
Text File  |  1991-10-10  |  6KB  |  161 lines

  1.  
  2.                               IPCA.EXE
  3.                               ********
  4.  
  5.                        (Ver 1.2a - 19 Apr 91)
  6.  
  7.                      Copyright (c) and developed by
  8.  
  9.                               José Campione
  10.       2415 SouthVale Cr. U-25, Ottawa, Ont. K1B 4T9 (613) 523-4345.
  11.  
  12.                                    and
  13.  
  14.                           C. Robert Parkinson
  15.            5 Ramsgate, Ottawa, Ont. K1V 8M4, (613) 523-7299.
  16.  
  17.  
  18.                       ... from the PUB SQUAD ...
  19.  
  20.                                 *  *  *
  21.  
  22.  NOTICE
  23.  ======
  24.  
  25.  This program and every file distributed with it are copyright (c) 
  26.  by the authors who retain authorship both of the pre-compiled and 
  27.  compiled codes. Their use and distribution is unrestricted as long 
  28.  as nobody gets any richer in the process. Although these programs 
  29.  were developed to the best of the authors abilities, no guarantee 
  30.  can be made on the results of their performance. By using them the 
  31.  user accepts all risks and the authors decline all liabilities. 
  32.  
  33.  
  34.  INTRODUCTION
  35.  ============
  36.  
  37.      DOS has an interesting memory location area with the pompous name
  38.  of "Inter-Process Communication Area" (IPCA), also sometimes referred
  39.  to as the "Inter-Application Communications Area".  This area is
  40.  actually the last 16 bytes of the 256-byte BIOS Data Area, also known
  41.  as the BIOS Communication Area.  The BIOS Data Area is found starting
  42.  at memory address 0000:0400 and extending to 0000:04FF.  Therefore,
  43.  the IPCA consists of 16 consecutive bytes, located at RAM memory
  44.  address 0000:04F0h through 0000:04FFh.
  45.  
  46.      The IPCA is very seldom used by any program, but it can be used
  47.  to store and retrieve small items of information, allowing
  48.  communication between programs or processes across program, shell and
  49.  subdirectory boundaries.  Thus, the IPCA can readily be used as a
  50.  "mini-environment" and IPCA.EXE will act as a "mini-SET command".
  51.  
  52.      It can be used to set 8-byte flags (128 bits). It allows for
  53.  256^16 combinations of bytes.
  54.  
  55.      IPCA.EXE defines this area as an array of bytes and allows its
  56.  use through strings entered on the command line.
  57.  
  58.      Depending on the commands, use of the area is accessed as a
  59.  string of characters or an array of bytes.  When accessing it through
  60.  the string commands, the area has room for 15 characters.  When it is
  61.  accessed by the byte commands, the entire 16-byte area is accessible.
  62.  
  63.      Caution must be taken in using this area, as there is no
  64.  guarantee that an intermediate program will not overwrite the area
  65.  before the desired "target" recipient can retrieve the information.
  66.  
  67.      To view the entire BIOS Data Area, including the IPCA, you may
  68.  use the program BIOSDATA.EXE, from PC Magazine Vol 9 #22 (25 Dec 90).
  69.  The IPCA will be the last displayed line on the screen.
  70.  
  71.      More information on this area can be found in "Turbo Pascal
  72.  Advanced Techniques", by Chris Olsen and Gary Stoker (QUE Corp 1989).
  73.  
  74.  
  75.  SYNTAX
  76.  ======
  77.  
  78.      The following commands are permitted in IPCA.EXE:
  79.  
  80.  General Commands:
  81.  -----------------
  82.  IPCA 0 .............. clears the entire IPCA area.
  83.  
  84.  IPCA w .............. writes the entire IPCA contents to the screen.
  85.  
  86.  
  87.  String Commands:
  88.  ----------------
  89.  IPCA e qwerty ....... enters string "qwerty", starting in position 1.
  90.  
  91.  IPCA a asdfgh ....... adds "asdfgh", starting with the next available
  92.                        byte space (immediately after "qwerty" if the
  93.                        previous command has been run first).
  94.  
  95.  IPCA c tyasd ........ checks to see if the string "tyasd" exists in
  96.                        the IPCA (it would succeed it the previous two
  97.                        commands had been entered first, because the
  98.                        IPCA string would be: "qwertyasdfgh" with
  99.                        "tyasd" starting at position 5).
  100.                        If it succeeds EL = 0, if not EL = 1.
  101.  
  102.  IPCA r tyasd ........ same as above, but will report "yes!" or "no!".
  103.  
  104.  
  105.  Byte Commands:
  106.  --------------
  107.  IPCA s 10 234 ....... sets byte 10 in the IPCA to the value 234.
  108.  
  109.  IPCA t 10 234 ....... tests to see if byte 10 in the IPCA has value
  110.                        234; if yes, it exits with EL = 0, if not,
  111.                        then EL = 1.
  112.  
  113.  IPCA u 10 234 ....... same as above but will report "yes!" or "no!".
  114.  
  115.  IPCA b 10 ........... exits with EL set to the ASCII value of byte
  116.                        10.
  117.   
  118.  
  119.  NOTE:  The byte commands allow access to byte 1, which determines the
  120.  ----   used and available area for strings.  Also, the setting of
  121.  bytes does not automatically modify byte 1 in the IPCA.  This may
  122.  create confusion when mixing string and byte commands.  It can be
  123.  done, but care is required.
  124.  
  125.      First parameters are case insensitive, but the strings in the
  126.  second parameter, as well as the searches, are case sensitive.
  127.  
  128.      When reporting to the screen, null bytes are written as underline
  129.  characters and ASCII 7 is written as a period.  But the stored byte
  130.  values are the real ones.
  131.  
  132.  
  133.  ERROR MESSAGES
  134.  ==============
  135.  
  136.      The following error messages will be written on-screen, as
  137.  necessary:
  138.  
  139.       1 - Two parameters required in command line.
  140.  
  141.       2 - 1st parameter longer than one character.
  142.  
  143.       3 - 2nd parameter longer than 15 characters.
  144.  
  145.       4 - 1st parameter not an acceptable "AECRSTUW" value.
  146.  
  147.       5 - 2nd parameter too long to fit in IPCA.
  148.  
  149.       6 - 2nd parameter must be in ASCII [1..16] range.
  150.  
  151.       7 - 3rd parameter is not in ASCII [0..255] range.
  152.  
  153.  EXIT ERRORLEVELS
  154.  ================
  155.  
  156.      If there is an error, the program exits with EL = 255.  If no
  157.  error, EL = 0, except for parameters c,r,t and u. If the conditions
  158.  tested by these parameters are not met, the program exits with
  159.  EL = 1.
  160. 
  161.